package com.suning.sawp.intf.esb;

import com.suning.rsc.dto.responsedto.MbfResponse;
import com.suning.rsc.httpservice.annotation.EsbEIHttpMethod;
import com.suning.rsc.httpservice.annotation.EsbEIHttpService;
import com.suning.sawp.dto.esb.BindKGPartyToPartyReq;
import com.suning.sawp.dto.esb.IndividualInfoReq;
import com.suning.sawp.dto.esb.MemberInfoQueryReq;
import com.suning.sawp.dto.esb.MemberQuerySocialityInfoReq;
import com.suning.sawp.dto.esb.OaApproveFlowReq;
import com.suning.sawp.dto.esb.OaApproveFlowResp;

@EsbEIHttpService(appCode = "SNSAWP", serviceCode = "MemberInfoMgmt")
public interface MemberQueryService {

    @EsbEIHttpMethod(operation = "locateMemberAccnt", serviceResource = "", reqMbfBodyNode = false, timeOut = 3000, soTimeOut = 5000, requestBodyClass = MemberInfoQueryReq.class, responseBodyClass = MbfResponse.class)
    MbfResponse queryCouponRule(MemberInfoQueryReq req);

    @EsbEIHttpMethod(operation = "querySocialityInfoAConstellation", serviceResource = "", reqMbfBodyNode = false, timeOut = 3000, soTimeOut = 5000, requestBodyClass = MemberQuerySocialityInfoReq.class, responseBodyClass = MbfResponse.class)
    MbfResponse querySocialityInfoAConstellation(MemberQuerySocialityInfoReq req);

    @EsbEIHttpMethod(operation = "bindKGPartyToParty", serviceResource = "", reqMbfBodyNode = false, timeOut = 3000, soTimeOut = 5000, requestBodyClass = BindKGPartyToPartyReq.class, responseBodyClass = MbfResponse.class)
    MbfResponse bindKGPartyToParty(BindKGPartyToPartyReq req);

    @EsbEIHttpMethod(operation = "updateEnterpriseMemberIndividualInfo", serviceResource = "", reqMbfBodyNode = false, timeOut = 3000, soTimeOut = 5000, requestBodyClass = IndividualInfoReq.class, responseBodyClass = MbfResponse.class)
    MbfResponse updateEnterpriseMemberIndividualInfo(IndividualInfoReq req);

    @EsbEIHttpMethod(operation = "syncMemberApproveFlow", serviceResource = "", reqMbfBodyNode = false, timeOut = 3000, soTimeOut = 5000, requestBodyClass = OaApproveFlowReq.class, responseBodyClass = OaApproveFlowResp.class)
    MbfResponse syncMemberApproveFlow(OaApproveFlowReq req);
    
}
